Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Distributed operating system</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Distributed_operating_system"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Distributed_operating_system rootpage-Distributed_operating_system skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Distributed operating system</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<p>A <b>distributed operating system</b> is system software over a collection of independent software, <a href="Computer_network" title="Computer network">networked</a>, <a href="Inter-process_communication" title="Inter-process communication">communicating</a>, and physically separate computational nodes. They handle jobs which are serviced by multiple CPUs.<sup id="cite_ref-Tanenbaum1993_1-0" class="reference"><a href="#cite_note-Tanenbaum1993-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> Each individual node holds a specific software subset of the global aggregate operating system. Each subset is a composite of two distinct service provisioners.<sup id="cite_ref-Nutt1992_2-0" class="reference"><a href="#cite_note-Nutt1992-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> The first is a ubiquitous minimal <a href="Kernel_(operating_system)" title="Kernel (operating system)">kernel</a>, or <a href="Microkernel" title="Microkernel">microkernel</a>, that directly controls that node's hardware. Second is a higher-level collection of <i>system management components</i> that coordinate the node's individual and collaborative activities. These components abstract microkernel functions and support user applications.<sup id="cite_ref-Gościński1991_3-0" class="reference"><a href="#cite_note-Gościński1991-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
</p><p>The microkernel and the management components collection work together. They support the system's goal of integrating multiple resources and processing functionality into an efficient and stable system.<sup id="cite_ref-Fortier1986_4-0" class="reference"><a href="#cite_note-Fortier1986-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> This seamless integration of individual nodes into a global system is referred to as <i>transparency</i>, or <i><a href="Single_system_image" title="Single system image">single system image</a></i>; describing the illusion provided to users of the global system's appearance as a single computational entity.
</p>
<style data-mw-deduplicate="TemplateStyles:r886046785">
/* start https://en.wikipedia.org/ */


.mw-parser-output .toclimit-2 .toclevel-1 ul,.mw-parser-output .toclimit-3 .toclevel-2 ul,.mw-parser-output .toclimit-4 .toclevel-3 ul,.mw-parser-output .toclimit-5 .toclevel-4 ul,.mw-parser-output .toclimit-6 .toclevel-5 ul,.mw-parser-output .toclimit-7 .toclevel-6 ul{display:none}


/* end https://en.wikipedia.org/ */
</style><div class="toclimit-3"><meta property="mw:PageProp/toc"></div>
<div class="mw-heading mw-heading2"><h2 id="Description">Description</h2></div>

<p>A distributed OS provides the essential services and functionality required of an OS but adds attributes and particular <a href="Computer_configuration" title="Computer configuration">configurations</a> to allow it to support additional requirements such as increased scale and availability. To a user, a distributed OS works in a manner similar to a single-node, <a href="Monolithic_kernel" title="Monolithic kernel">monolithic operating system</a>. That is, although it consists of multiple nodes, it appears to users and applications as a single-node.
</p><p>Separating minimal system-level functionality from additional user-level modular services provides a "<a href="Separation_of_mechanism_and_policy" title="Separation of mechanism and policy">separation of mechanism and policy</a>". Mechanism and policy can be simply interpreted as "what something is done" versus "how something is done," respectively. This separation increases flexibility and scalability.
</p>
<div class="mw-heading mw-heading2"><h2 id="Overview">Overview</h2></div>
<div class="mw-heading mw-heading3"><h3 id="The_kernel">The kernel</h3></div>
<p>At each <a href="Locale_(computer_hardware)" title="Locale (computer hardware)">locale</a> (typically a node), the kernel provides a minimally complete set of node-level utilities necessary for operating a node's underlying hardware and resources. These mechanisms include allocation, management, and disposition of a node's resources, processes, communication, and <a href="Input/output" title="Input/output">input/output</a> management support functions.<sup id="cite_ref-Hansen2001_5-0" class="reference"><a href="#cite_note-Hansen2001-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> Within the kernel, the communications sub-system is of foremost importance for a distributed OS.<sup id="cite_ref-Gościński1991_3-1" class="reference"><a href="#cite_note-Gościński1991-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
</p><p>In a distributed OS, the kernel often supports a minimal set of functions, including low-level <a href="Address_space" title="Address space">address space</a> management, <a href="Thread_(computing)" title="Thread (computing)">thread</a> management, and <a href="Inter-process_communication" title="Inter-process communication">inter-process communication</a> (IPC). A kernel of this design is referred to as a <a href="Microkernel" title="Microkernel">microkernel</a>.<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> Its modular nature enhances reliability and security, essential features for a distributed OS.<sup id="cite_ref-Sinha1997_8-0" class="reference"><a href="#cite_note-Sinha1997-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup>
</p>

<div class="mw-heading mw-heading3"><h3 id="System_management">System management</h3></div>
<p>System management components are software processes that define the node's <i>policies</i>. These components are the part of the OS outside the kernel. These components provide higher-level communication, process and resource management, reliability, performance and security. The components match the functions of a single-entity system, adding the transparency required in a distributed environment.<sup id="cite_ref-Gościński1991_3-2" class="reference"><a href="#cite_note-Gościński1991-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
</p><p>The distributed nature of the OS requires additional services to support a node's responsibilities to the global system. In addition, the system management components accept the "defensive" responsibilities of reliability, availability, and persistence. These responsibilities can conflict with each other. A consistent approach, balanced perspective, and a deep understanding of the overall system can assist in identifying <a href="Diminishing_returns" title="Diminishing returns">diminishing returns</a>. Separation of policy and mechanism mitigates such conflicts.<sup id="cite_ref-Chow1997_9-0" class="reference"><a href="#cite_note-Chow1997-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Working_together_as_an_operating_system">Working together as an operating system</h3></div>
<p>The architecture and design of a distributed operating system must realize both individual node and global system goals. Architecture and design must be approached in a manner consistent with separating policy and mechanism. In doing so, a distributed operating system attempts to provide an efficient and reliable distributed computing framework allowing for an absolute minimal user awareness of the underlying command and control efforts.<sup id="cite_ref-Sinha1997_8-1" class="reference"><a href="#cite_note-Sinha1997-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup>
</p><p>The multi-level collaboration between a kernel and the system management components, and in turn between the distinct nodes in a distributed operating system is the functional challenge of the distributed operating system. This is the point in the system that must maintain a perfect harmony of purpose, and simultaneously maintain a complete disconnect of intent from implementation. This challenge is the distributed operating system's opportunity to produce the foundation and framework for a reliable, efficient, available, robust, extensible, and scalable system. However, this opportunity comes at a very high cost in complexity.
</p>
<div class="mw-heading mw-heading3"><h3 id="The_price_of_complexity">The price of complexity</h3></div>
<p>In a distributed operating system, the exceptional degree of inherent complexity could easily render the entire system an anathema to any user. As such, the logical price of realizing a distributed operation system must be calculated in terms of overcoming vast amounts of complexity in many areas, and on many levels. This calculation includes the depth, breadth, and range of design investment and architectural planning required in achieving even the most modest implementation.<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup>
</p><p>These design and development considerations are critical and unforgiving. For instance, a deep understanding of a distributed operating system's overall architectural and design detail is required at an exceptionally early point.<sup id="cite_ref-Tanenbaum1993_1-1" class="reference"><a href="#cite_note-Tanenbaum1993-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> An exhausting array of design considerations are inherent in the development of a distributed operating system. Each of these design considerations can potentially affect many of the others to a significant degree. This leads to a massive effort in balanced approach, in terms of the individual design considerations, and many of their permutations. As an aid in this effort, most rely on documented experience and research in distributed computing power.
</p>
<div class="mw-heading mw-heading2"><h2 id="History">History</h2></div>
<p>Research and experimentation efforts began in earnest in the 1970s and continued through the 1990s, with focused interest peaking in the late 1980s. A number of distributed operating systems were introduced during this period; however, very few of these implementations achieved even modest commercial success.
</p><p>Fundamental and pioneering implementations of primitive distributed operating system component concepts date to the early 1950s.<sup id="cite_ref-dyseac_11-0" class="reference"><a href="#cite_note-dyseac-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-lincoln_tx2_12-0" class="reference"><a href="#cite_note-lincoln_tx2-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-intercomm_cells_13-0" class="reference"><a href="#cite_note-intercomm_cells-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> Some of these individual steps were not focused directly on distributed computing, and at the time, many may not have realized their important impact. These pioneering efforts laid important groundwork, and inspired continued research in areas related to distributed computing.<sup id="cite_ref-Dreyfus_1958_Gamma60_14-0" class="reference"><a href="#cite_note-Dreyfus_1958_Gamma60-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-17" class="reference"><a href="#cite_note-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-18" class="reference"><a href="#cite_note-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-19" class="reference"><a href="#cite_note-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup>
</p><p>In the mid-1970s, research produced important advances in distributed computing. These breakthroughs provided a solid, stable foundation for efforts that continued through the 1990s.
</p><p>The accelerating proliferation of <a href="Multiprocessing" title="Multiprocessing">multi-processor</a> and <a href="Multi-core_processor" title="Multi-core processor">multi-core processor</a> systems research led to a resurgence of the distributed OS concept.
</p>
<div class="mw-heading mw-heading3"><h3 id="The_DYSEAC">The DYSEAC</h3></div>
<p>One of the first efforts was the <a href="DYSEAC" title="DYSEAC">DYSEAC</a>, a general-purpose <a href="Synchronization_(computer_science)" title="Synchronization (computer science)">synchronous</a> computer. In one of the earliest publications of the <a href="Association_for_Computing_Machinery" title="Association for Computing Machinery">Association for Computing Machinery</a>, in April 1954, a researcher at the <a href="National_Bureau_of_Standards" class="mw-redirect" title="National Bureau of Standards">National Bureau of Standards</a>&nbsp;– now the National <a href="Nist" class="mw-redirect" title="Nist">Institute of Standards and Technology</a> (<a href="Nist" class="mw-redirect" title="Nist">NIST</a>)&nbsp;– presented a detailed specification of the DYSEAC. The introduction focused upon the requirements of the intended applications, including flexible communications, but also mentioned other computers:
</p>
<style data-mw-deduplicate="TemplateStyles:r1244412712">
/* start https://en.wikipedia.org/ */


.mw-parser-output .templatequote{overflow:hidden;margin:1em 0;padding:0 32px}.mw-parser-output .templatequotecite{line-height:1.5em;text-align:left;margin-top:0}@media(min-width:500px){.mw-parser-output .templatequotecite{padding-left:1.6em}}


/* end https://en.wikipedia.org/ */
</style><blockquote class="templatequote"><p>Finally, the external devices could even include other full-scale computers employing the same digital language as the DYSEAC. For example, the SEAC or other computers similar to it could be harnessed to the DYSEAC and by use of coordinated programs could be made to work together in mutual cooperation on a common task… Consequently[,] the computer can be used to coordinate the diverse activities of all the external devices into an effective ensemble operation.</p></blockquote><div class="templatequotecite"><p style="display: inline; padding-left: 2.3em;">— ALAN L. LEINER, <i>System Specifications for the DYSEAC</i></p></div>
<p>The specification discussed the architecture of multi-computer systems, preferring peer-to-peer rather than master-slave.
</p>
<blockquote class="templatequote"><p>Each member of such an interconnected group of separate computers is free at any time to initiate and dispatch special control orders to any of its partners in the system. As a consequence, the supervisory control over the common task may initially be loosely distributed throughout the system and then temporarily concentrated in one computer, or even passed rapidly from one machine to the other as the need arises. …the various interruption facilities which have been described are based on mutual cooperation between the computer and the external devices subsidiary to it, and do not reflect merely a simple master-slave relationship.</p></blockquote><div class="templatequotecite"><p style="display: inline; padding-left: 2.3em;">— ALAN L. LEINER, <i>System Specifications for the DYSEAC</i></p></div>
<p>This is one of the earliest examples of a computer with distributed control. The <a href="United_States_Department_of_the_Army" title="United States Department of the Army">Dept. of the Army</a> reports<sup id="cite_ref-20" class="reference"><a href="#cite_note-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup> certified it reliable and that it passed all acceptance tests in April 1954. It was completed and delivered on time, in May 1954. This was a "<a href="Portable_computer" title="Portable computer">portable computer</a>", housed in a <a href="Tractor-trailer" class="mw-redirect" title="Tractor-trailer">tractor-trailer</a>, with 2 attendant vehicles and <a href="Refrigerator_truck" title="Refrigerator truck">6 tons of refrigeration</a> capacity.
</p>
<div class="mw-heading mw-heading3"><h3 id="Lincoln_TX-2">Lincoln TX-2</h3></div>
<p>Described as an experimental input-output system, the <a href="Lincoln_TX-2" class="mw-redirect" title="Lincoln TX-2">Lincoln TX-2</a> emphasized flexible, simultaneously operational input-output devices, i.e., <a href="Multiprogramming" class="mw-redirect" title="Multiprogramming">multiprogramming</a>. The design of the TX-2 was modular, supporting a high degree of modification and expansion.<sup id="cite_ref-lincoln_tx2_12-1" class="reference"><a href="#cite_note-lincoln_tx2-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup>
</p><p>The system employed The Multiple-Sequence Program Technique. This technique allowed multiple <a href="Program_counter" title="Program counter">program counters</a> to each associate with one of 32 possible sequences of program code. These explicitly prioritized sequences could be interleaved and executed concurrently, affecting not only the computation in process, but also the control flow of sequences and switching of devices as well. Much discussion related to device sequencing.
</p><p>Similar to DYSEAC the TX-2 separately programmed devices can operate simultaneously, increasing <a href="Throughput" class="mw-redirect" title="Throughput">throughput</a>. The full power of the central unit was available to any device. The TX-2 was another example of a system exhibiting distributed control, its central unit not having dedicated control.
</p>
<div class="mw-heading mw-heading3"><h3 id="Intercommunicating_Cells">Intercommunicating Cells</h3></div>
<p>One early effort at abstracting memory access was Intercommunicating Cells, where a cell was composed of a collection of <a href="Computer_data_storage" title="Computer data storage">memory</a> elements. A memory element was basically a binary electronic <a href="Flip-flop_(electronics)" title="Flip-flop (electronics)">flip-flop</a> or <a href="Relay" title="Relay">relay</a>. Within a cell there were two types of elements, <i>symbol</i> and <i>cell</i>. Each cell structure stores <a href="Data" title="Data">data</a> in a <a href="String_(computer_science)" title="String (computer science)">string</a> of symbols, consisting of a <a href="Identifier" title="Identifier">name</a> and a set of <a href="Parameter" title="Parameter">parameters</a>. Information is linked through cell associations.<sup id="cite_ref-intercomm_cells_13-1" class="reference"><a href="#cite_note-intercomm_cells-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup>
</p><p>The theory contended that addressing is a wasteful and non-valuable <a href="Indirection" title="Indirection">level of indirection</a>. Information was accessed in two ways, direct and cross-retrieval. Direct retrieval accepts a name and returns a parameter set. Cross-retrieval <a href="Projection_(mathematics)" title="Projection (mathematics)">projects</a> through parameter sets and returns a set of names containing the given <a href="Subset" title="Subset">subset</a> of parameters. This was similar to a modified <a href="Hash_table" title="Hash table">hash table</a> <a href="Data_structure" title="Data structure">data structure</a> that allowed multiple <a href="Value_(mathematics)" title="Value (mathematics)">values</a> (parameters) for each <a href="Unique_key" title="Unique key">key</a> (name).
</p>
<table style="width=100%;">

<tbody><tr valign="top">
<td colspan="3">Cellular memory would have many advantages:
</td></tr>
<tr valign="top">
<td width="20px"></td>
<td width="10px"><span class="mw-default-size mw-valign-top" typeof="mw:File"></span></td>
<td>A major portion of a system's <a href="Boolean_logic" class="mw-redirect" title="Boolean logic">logic</a> is distributed within the associations of information stored in the cells,
</td></tr>
<tr valign="top">
<td width="20px"></td>
<td width="10px"><span class="mw-default-size mw-valign-top" typeof="mw:File"></span></td>
<td>This flow of information association is somewhat guided by the act of storing and retrieving,
</td></tr>
<tr valign="top">
<td width="20px"></td>
<td width="10px"><span class="mw-default-size mw-valign-top" typeof="mw:File"></span></td>
<td>The time required for storage and <a href="Information_retrieval" title="Information retrieval">retrieval</a> is mostly <a href="Constant_time" class="mw-redirect" title="Constant time">constant</a> and completely unrelated to the size and fill-factor of the memory
</td></tr>
<tr valign="top">
<td width="20px"></td>
<td width="10px"><span class="mw-default-size mw-valign-top" typeof="mw:File"></span></td>
<td>Cells are logically indistinguishable, making them both flexible to use and relatively simple to extend in size
</td></tr></tbody></table>
<p>This <a href="Computer_configuration" title="Computer configuration">configuration</a> was ideal for distributed systems. The constant-time projection through memory for storing and retrieval was inherently <a href="Atomic_operation" class="mw-redirect" title="Atomic operation">atomic</a> and <a href="Mutual_exclusion" title="Mutual exclusion">exclusive</a>. The cellular memory's intrinsic distributed characteristics would be invaluable. The impact on the <a href="User_interface" title="User interface">user</a>, <a href="Computer_hardware" title="Computer hardware">hardware</a>/<a href="Peripheral" title="Peripheral">device</a>, or <a href="Application_programming_interface" class="mw-redirect" title="Application programming interface">Application programming interfaces</a> was indirect. The authors were considering distributed systems, stating:
</p>
<blockquote class="templatequote"><p>We wanted to present here the basic ideas of a distributed logic system with... the macroscopic concept of logical design, away from scanning, from searching, from addressing, and from counting, is equally important. We must, at all cost, free ourselves from the burdens of detailed local problems which only befit a machine low on the evolutionary scale of machines.</p></blockquote><div class="templatequotecite"><p style="display: inline; padding-left: 2.3em;">— Chung-Yeol (C. Y.) Lee, <i>Intercommunicating Cells, Basis for a Distributed Logic Computer</i></p></div>
<div class="mw-heading mw-heading3"><h3 id="Foundational_work">Foundational work</h3></div>
<div class="mw-heading mw-heading4"><h4 id="Coherent_memory_abstraction">Coherent memory abstraction</h4></div>
<p><span style="padding-left:2em;">&nbsp;</span> Algorithms for scalable synchronization on shared-memory multiprocessors <sup id="cite_ref-21" class="reference"><a href="#cite_note-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading4"><h4 id="File_System_abstraction">File System abstraction</h4></div>
<p><span style="padding-left:2em;">&nbsp;</span>Measurements of a distributed file system<sup id="cite_ref-22" class="reference"><a href="#cite_note-22"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup>
<br><span style="padding-left:2em;">&nbsp;</span>Memory coherence in shared virtual memory systems <sup id="cite_ref-23" class="reference"><a href="#cite_note-23"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading4"><h4 id="Transaction_abstraction">Transaction abstraction</h4></div>
<p><span style="padding-left:2em;">&nbsp;</span><i>Transactions</i>
<br><span style="padding-left:4em;">&nbsp;</span> Sagas <sup id="cite_ref-24" class="reference"><a href="#cite_note-24"><span class="cite-bracket">[</span>24<span class="cite-bracket">]</span></a></sup>
</p><p><span style="padding-left:2em;">&nbsp;</span><i>Transactional Memory</i>
<br><span style="padding-left:4em;">&nbsp;</span>Composable memory transactions<sup id="cite_ref-25" class="reference"><a href="#cite_note-25"><span class="cite-bracket">[</span>25<span class="cite-bracket">]</span></a></sup>
<br><span style="padding-left:4em;">&nbsp;</span>Transactional memory: architectural support for lock-free data structures <sup id="cite_ref-26" class="reference"><a href="#cite_note-26"><span class="cite-bracket">[</span>26<span class="cite-bracket">]</span></a></sup>
<br><span style="padding-left:4em;">&nbsp;</span>Software transactional memory for dynamic-sized data structures<sup id="cite_ref-27" class="reference"><a href="#cite_note-27"><span class="cite-bracket">[</span>27<span class="cite-bracket">]</span></a></sup>
<br><span style="padding-left:4em;">&nbsp;</span>Software transactional memory<sup id="cite_ref-28" class="reference"><a href="#cite_note-28"><span class="cite-bracket">[</span>28<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading4"><h4 id="Persistence_abstraction">Persistence abstraction</h4></div>
<p><span style="padding-left:2em;">&nbsp;</span>OceanStore: an architecture for global-scale persistent storage <sup id="cite_ref-29" class="reference"><a href="#cite_note-29"><span class="cite-bracket">[</span>29<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading4"><h4 id="Coordinator_abstraction">Coordinator abstraction</h4></div>
<p><span style="padding-left:2em;">&nbsp;</span> Weighted voting for replicated data <sup id="cite_ref-30" class="reference"><a href="#cite_note-30"><span class="cite-bracket">[</span>30<span class="cite-bracket">]</span></a></sup>
<br><span style="padding-left:2em;">&nbsp;</span> Consensus in the presence of partial synchrony <sup id="cite_ref-31" class="reference"><a href="#cite_note-31"><span class="cite-bracket">[</span>31<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading4"><h4 id="Reliability_abstraction">Reliability abstraction</h4></div>
<p><span style="padding-left:2em;">&nbsp;</span><i>Sanity checks</i>
<br><span style="padding-left:4em;">&nbsp;</span>The Byzantine Generals Problem <sup id="cite_ref-32" class="reference"><a href="#cite_note-32"><span class="cite-bracket">[</span>32<span class="cite-bracket">]</span></a></sup>
<br><span style="padding-left:4em;">&nbsp;</span>Fail-stop processors: an approach to designing fault-tolerant computing systems <sup id="cite_ref-33" class="reference"><a href="#cite_note-33"><span class="cite-bracket">[</span>33<span class="cite-bracket">]</span></a></sup>
</p><p><span style="padding-left:2em;">&nbsp;</span><i>Recoverability</i>
<br><span style="padding-left:4em;">&nbsp;</span><i>Distributed</i> snapshots: determining global states of distributed systems<sup id="cite_ref-34" class="reference"><a href="#cite_note-34"><span class="cite-bracket">[</span>34<span class="cite-bracket">]</span></a></sup>
<br><span style="padding-left:4em;">&nbsp;</span>Optimistic recovery in distributed systems <sup id="cite_ref-35" class="reference"><a href="#cite_note-35"><span class="cite-bracket">[</span>35<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Distributed_computing_models">Distributed computing models</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1251242444">
/* start https://en.wikipedia.org/ */


.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style>
<div class="mw-heading mw-heading3"><h3 id="Three_basic_distributions">Three basic distributions</h3></div>
<p>To better illustrate this point, examine three system <a href="Software_architecture" title="Software architecture">architectures</a>; centralized, decentralized, and distributed. In this examination, consider three structural aspects: organization, connection, and control. Organization describes a system's physical arrangement characteristics. Connection covers the communication pathways among nodes. Control manages the operation of the earlier two considerations.
</p>
<div class="mw-heading mw-heading4"><h4 id="Organization">Organization</h4></div>
<p>A <a href="Centralized_computing" title="Centralized computing">centralized system</a> has one level of structure, where all constituent elements directly depend upon a single control element. A <a href="Decentralized_system" class="mw-redirect" title="Decentralized system">decentralized system</a> is hierarchical. The bottom level unites subsets of a system's entities. These entity subsets in turn combine at higher levels, ultimately culminating at a central master element. A distributed system is a collection of autonomous elements with no concept of levels.
</p>
<div class="mw-heading mw-heading4"><h4 id="Connection">Connection</h4></div>
<p>Centralized systems connect constituents directly to a central master entity in a hub and spoke fashion. A decentralized system (aka <a href="Network_operating_system" title="Network operating system">network system</a>) incorporates direct and indirect paths between constituent elements and the central entity. Typically this is configured as a hierarchy with only one shortest path between any two elements. Finally, the distributed operating system requires no pattern; direct and indirect connections are possible between any two elements. Consider the 1970s phenomena of “<a href="String_art" title="String art">string art</a>” or a <a href="Spirograph" title="Spirograph">spirograph</a> drawing as a <a href="Fully_connected_network" class="mw-redirect" title="Fully connected network">fully connected system</a>, and the <a href="Spider_web" title="Spider web">spider's web</a> or the <a href="Interstate_Highway_System" title="Interstate Highway System">Interstate Highway System</a> between U.S. cities as examples of a <i>partially connected system</i>.
</p>
<div class="mw-heading mw-heading4"><h4 id="Control">Control</h4></div>
<p>Centralized and decentralized systems have directed <a href="Software_flow_control" title="Software flow control">flows of connection</a> to and from the central entity, while distributed systems communicate along arbitrary paths. This is the pivotal notion of the third consideration. Control involves allocating tasks and data to system elements balancing efficiency, responsiveness, and complexity.
</p><p>Centralized and decentralized systems offer more control, potentially easing administration by limiting options. Distributed systems are more difficult to explicitly control, but scale better horizontally and offer fewer points of system-wide failure. The associations conform to the needs imposed by its design but not by organizational chaos
</p>
<div class="mw-heading mw-heading2"><h2 id="Design_considerations">Design considerations</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Transparency">Transparency</h3></div>
<p><i>Transparency</i> or <i>single-system image</i> refers to the ability of an application to treat the system on which it operates without regard to whether it is distributed and without regard to hardware or other implementation details. Many areas of a system can benefit from transparency, including access, location, performance, naming, and migration. The consideration of transparency directly affects decision making in every aspect of design of a distributed operating system. Transparency can impose certain requirements and/or restrictions on other design considerations.
</p><p>Systems can optionally violate transparency to varying degrees to meet specific application requirements. For example, a distributed operating system may present a hard drive on one computer as "C:" and a drive on another computer as "G:". The user does not require any knowledge of device drivers or the drive's location; both devices work the same way, from the application's perspective. A less transparent interface might require the application to know which computer hosts the drive. Transparency domains:
</p>
<ul><li><i>Location transparency</i> – Location transparency comprises two distinct aspects of transparency, naming transparency and user mobility. Naming transparency requires that nothing in the physical or logical references to any system entity should expose any indication of the entity's location, or its local or remote relationship to the user or application. User mobility requires the consistent referencing of system entities, regardless of the system location from which the reference originates.<sup id="cite_ref-Sinha1997_8-2" class="reference"><a href="#cite_note-Sinha1997-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 20">: 20 </span></sup></li>
<li><i>Access transparency</i> – Local and remote system entities must remain indistinguishable when viewed through the user interface. The distributed operating system maintains this perception through the exposure of a single access mechanism for a system entity, regardless of that entity being local or remote to the user. Transparency dictates that any differences in methods of accessing any particular system entity—either local or remote—must be both invisible to, and undetectable by the user.<sup id="cite_ref-Gościński1991_3-3" class="reference"><a href="#cite_note-Gościński1991-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 84">: 84 </span></sup></li>
<li><i>Migration transparency</i> – Resources and activities migrate from one element to another controlled solely by the system and without user/application knowledge or action.<sup id="cite_ref-Galli2000_36-0" class="reference"><a href="#cite_note-Galli2000-36"><span class="cite-bracket">[</span>36<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 16">: 16 </span></sup></li>
<li><i>Replication transparency</i> – The process or fact that a resource has been duplicated on another element occurs under system control and without user/application knowledge or intervention.<sup id="cite_ref-Galli2000_36-1" class="reference"><a href="#cite_note-Galli2000-36"><span class="cite-bracket">[</span>36<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 16">: 16 </span></sup></li>
<li><i>Concurrency transparency</i> – Users/applications are unaware of and unaffected by the presence/activities of other users.<sup id="cite_ref-Galli2000_36-2" class="reference"><a href="#cite_note-Galli2000-36"><span class="cite-bracket">[</span>36<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 16">: 16 </span></sup></li>
<li><i>Failure transparency</i> – The system is responsible for detection and remediation of system failures. No user knowledge/action is involved other than waiting for the system to resolve the problem.<sup id="cite_ref-Chow1997_9-1" class="reference"><a href="#cite_note-Chow1997-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 30">: 30 </span></sup></li>
<li><i>Performance Transparency</i> – The system is responsible for the detection and remediation of local or global performance shortfalls. Note that system policies may prefer some users/user classes/tasks over others. No user knowledge or interaction. is involved.<sup id="cite_ref-Sinha1997_8-3" class="reference"><a href="#cite_note-Sinha1997-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 23">: 23 </span></sup></li>
<li><i>Size/Scale transparency</i> – The system is responsible for managing its geographic reach, number of nodes, level of node capability without any required user knowledge or interaction.<sup id="cite_ref-Sinha1997_8-4" class="reference"><a href="#cite_note-Sinha1997-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 23">: 23 </span></sup></li>
<li><i>Revision transparency</i> – The system is responsible for upgrades and revisions and changes to system infrastructure without user knowledge or action.<sup id="cite_ref-Chow1997_9-2" class="reference"><a href="#cite_note-Chow1997-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 30">: 30 </span></sup></li>
<li><i>Control transparency</i> – The system is responsible for providing all system information, constants, properties, configuration settings, etc. in a consistent appearance, connotation, and denotation to all users and applications.<sup id="cite_ref-Gościński1991_3-4" class="reference"><a href="#cite_note-Gościński1991-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 84">: 84 </span></sup></li>
<li><i>Data transparency</i> – The system is responsible for providing data to applications without user knowledge or action relating to where the system stores it.<sup id="cite_ref-Gościński1991_3-5" class="reference"><a href="#cite_note-Gościński1991-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 85">: 85 </span></sup></li>
<li><i>Parallelism transparency</i> – The system is responsible for exploiting any ability to parallelize task execution without user knowledge or interaction. Arguably the most difficult aspect of transparency, and described by Tanenbaum as the "Holy grail" for distributed system designers.<sup id="cite_ref-Tanenbaum1995_37-0" class="reference"><a href="#cite_note-Tanenbaum1995-37"><span class="cite-bracket">[</span>37<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 23–25">: 23–25 </span></sup></li></ul>
<div class="mw-heading mw-heading3"><h3 id="Inter-process_communication">Inter-process communication</h3></div>
<p><a href="Inter-Process_Communication" class="mw-redirect" title="Inter-Process Communication">Inter-Process Communication</a> (IPC) is the implementation of general communication, process interaction, and <a href="Dataflow" title="Dataflow">dataflow</a> between <a href="Thread_(computer_science)" class="mw-redirect" title="Thread (computer science)">threads</a> and/or <a href="Process_(computing)" title="Process (computing)">processes</a> both within a node, and between nodes in a distributed OS. The intra-node and inter-node communication requirements drive low-level IPC design, which is the typical approach to implementing communication functions that support transparency. In this sense, Interprocess communication is the greatest underlying concept in the low-level design considerations of a distributed operating system.
</p>
<div class="mw-heading mw-heading3"><h3 id="Process_management">Process management</h3></div>
<p><a href="Process_management_(computing)" title="Process management (computing)">Process management</a> provides policies and mechanisms for effective and efficient sharing of resources between distributed processes. These policies and mechanisms support operations involving the allocation and de-allocation of processes and ports to processors, as well as mechanisms to run, suspend, migrate, halt, or resume process execution. While these resources and operations can be either local or remote with respect to each other, the distributed OS maintains state and synchronization over all processes in the system.
</p><p>As an example, <a href="Load_balancing_(computing)" title="Load balancing (computing)">load balancing</a> is a common process management function. Load balancing monitors node performance and is responsible for shifting activity across nodes when the system is out of balance. One load balancing function is picking a process to move. The kernel may employ several selection mechanisms, including priority-based choice. This mechanism chooses a process based on a policy such as 'newest request'. The system implements the policy
</p>
<div class="mw-heading mw-heading3"><h3 id="Resource_management">Resource management</h3></div>
<p><a href="Resource_(computer_science)" class="mw-redirect" title="Resource (computer science)">Systems resources</a> such as memory, files, devices, etc. are distributed throughout a system, and at any given moment, any of these nodes may have light to idle workloads. <i>Load sharing</i> and load balancing require many policy-oriented decisions, ranging from finding idle CPUs, when to move, and which to move. Many <a href="Algorithm" title="Algorithm">algorithms</a> exist to aid in these decisions; however, this calls for a second level of decision making policy in choosing the algorithm best suited for the scenario, and the conditions surrounding the scenario.
</p>
<div class="mw-heading mw-heading3"><h3 id="Reliability">Reliability</h3></div>
<p>Distributed OS can provide the necessary resources and services to achieve high levels of <i>reliability</i>, or the ability to prevent and/or recover from errors. <a href="Fault_(technology)" title="Fault (technology)">Faults</a> are physical or logical defects that can cause errors in the system. For a system to be reliable, it must somehow overcome the adverse effects of faults.
</p><p>The primary methods for dealing with faults include <i>fault avoidance</i>, <a href="Fault-tolerant_design" class="mw-redirect" title="Fault-tolerant design">fault tolerance</a>, and <i>fault detection and recovery</i>. Fault avoidance covers proactive measures taken to minimize the occurrence of faults. These proactive measures can be in the form of <i><a href="Transaction_processing" title="Transaction processing">transactions</a></i>, <a href="Replication_(computer_science)" class="mw-redirect" title="Replication (computer science)">replication</a> and <a href="Replication_(computer_science)" class="mw-redirect" title="Replication (computer science)">backups</a>. Fault tolerance is the ability of a system to continue operation in the presence of a fault. In the event, the system should detect and recover full functionality. In any event, any actions taken should make every effort to preserve the <i>single system image</i>.
</p>
<div class="mw-heading mw-heading3"><h3 id="Availability">Availability</h3></div>
<p><a href="Availability" title="Availability">Availability</a> is the fraction of time during which the system can respond to requests.
</p>
<div class="mw-heading mw-heading3"><h3 id="Performance">Performance</h3></div>
<p>Many <a href="Benchmark_(computing)" title="Benchmark (computing)">benchmark metrics</a> quantify <a href="Computer_performance" title="Computer performance">performance</a>; throughput, response time, job completions per unit time, system utilization, etc. With respect to a distributed OS, performance most often distills to a balance between <a href="Parallel_computing" title="Parallel computing">process parallelism</a> and IPC. Managing the <a href="Granularity#In_computing" title="Granularity">task granularity</a> of parallelism in a sensible relation to the messages required for support is extremely effective. Also, identifying when it is more beneficial to <a href="Process_migration" title="Process migration">migrate a process</a> to its data, rather than copy the data, is effective as well.
</p>
<div class="mw-heading mw-heading3"><h3 id="Synchronization">Synchronization</h3></div>
<p>Cooperating <a href="Concurrent_computing" title="Concurrent computing">concurrent processes</a> have an inherent need for <a href="Synchronization_(computer_science)" title="Synchronization (computer science)">synchronization</a>, which ensures that changes happen in a correct and predictable fashion. Three basic situations that define the scope of this need:
</p>
<dl><dd><ul><li>one or more processes must synchronize at a given point for one or more other processes to continue,</li>
<li>one or more processes must wait for an asynchronous condition in order to continue,</li>
<li>or a process must establish exclusive access to a shared resource.</li></ul></dd></dl>
<p>Improper synchronization can lead to multiple failure modes including loss of <a href="ACID" title="ACID">atomicity, consistency, isolation and durability</a>, <a href="Deadlock_(computer_science)" title="Deadlock (computer science)">deadlock</a>, <a href="Livelock" class="mw-redirect" title="Livelock">livelock</a> and loss of <a href="Serializability" class="mw-redirect" title="Serializability">serializability</a>.
</p>
<div class="mw-heading mw-heading3"><h3 id="Flexibility">Flexibility</h3></div>
<p><a href="Flexibility_(engineering)" title="Flexibility (engineering)">Flexibility</a> in a distributed operating system is enhanced through the modular characteristics of the distributed OS, and by providing a richer set of higher-level services. The completeness and quality of the kernel/microkernel simplifies implementation of such services, and potentially enables service providers greater choice of providers for such services.
</p>
<div class="mw-heading mw-heading2"><h2 id="Research">Research</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Replicated_model_extended_to_a_component_object_model">Replicated model extended to a component object model</h3></div>
<p><span style="padding-left:2em;">&nbsp;</span>Architectural Design of E1 Distributed Operating System<sup id="cite_ref-38" class="reference"><a href="#cite_note-38"><span class="cite-bracket">[</span>38<span class="cite-bracket">]</span></a></sup>
<br><span style="padding-left:2em;">&nbsp;</span>The Cronus distributed operating system<sup id="cite_ref-39" class="reference"><a href="#cite_note-39"><span class="cite-bracket">[</span>39<span class="cite-bracket">]</span></a></sup>
<br><span style="padding-left:2em;">&nbsp;</span>Design and development of MINIX distributed operating system<sup id="cite_ref-40" class="reference"><a href="#cite_note-40"><span class="cite-bracket">[</span>40<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Complexity/Trust_exposure_through_accepted_responsibility">Complexity/Trust exposure through accepted responsibility</h3></div>
<dl><dd>Scale and performance in the Denali isolation kernel.<sup id="cite_ref-41" class="reference"><a href="#cite_note-41"><span class="cite-bracket">[</span>41<span class="cite-bracket">]</span></a></sup></dd></dl>
<div class="mw-heading mw-heading3"><h3 id="Multi/Many-core_focused_systems">Multi/Many-core focused systems</h3></div>
<dl><dd>The multikernel: a new OS architecture for scalable multicore systems.<sup id="cite_ref-42" class="reference"><a href="#cite_note-42"><span class="cite-bracket">[</span>42<span class="cite-bracket">]</span></a></sup></dd>
<dd>Corey: an Operating System for Many Cores.<sup id="cite_ref-43" class="reference"><a href="#cite_note-43"><span class="cite-bracket">[</span>43<span class="cite-bracket">]</span></a></sup></dd>
<dd>Almos: Advanced Locality Management Operating System for cc-NUMA Many-Cores.<sup id="cite_ref-44" class="reference"><a href="#cite_note-44"><span class="cite-bracket">[</span>44<span class="cite-bracket">]</span></a></sup></dd></dl>
<div class="mw-heading mw-heading3"><h3 id="Distributed_processing_over_extremes_in_heterogeneity">Distributed processing over extremes in heterogeneity</h3></div>
<dl><dd>Helios: heterogeneous multiprocessing with satellite kernels.<sup id="cite_ref-45" class="reference"><a href="#cite_note-45"><span class="cite-bracket">[</span>45<span class="cite-bracket">]</span></a></sup></dd></dl>
<div class="mw-heading mw-heading3"><h3 id="Effective_and_stable_in_multiple_levels_of_complexity">Effective and stable in multiple levels of complexity</h3></div>
<dl><dd>Tessellation: Space-Time Partitioning in a Manycore Client OS.<sup id="cite_ref-46" class="reference"><a href="#cite_note-46"><span class="cite-bracket">[</span>46<span class="cite-bracket">]</span></a></sup></dd></dl>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Distributed_computing" title="Distributed computing">Distributed computing</a>&nbsp;– System with multiple networked computers</li>
<li><a href="HarmonyOS" title="HarmonyOS">HarmonyOS</a>&nbsp;– Distributed operating system by Huawei</li>
<li><a href="OpenHarmony" title="OpenHarmony">OpenHarmony</a>&nbsp;– Family of open-source operating systems based on HarmonyOS</li>
<li><a href="BlueOS" title="BlueOS">BlueOS</a>&nbsp;– Vivo's operating system BlueOS</li>
<li><a href="Plan_9_from_Bell_Labs" title="Plan 9 from Bell Labs">Plan 9 from Bell Labs</a>&nbsp;– Research distributed operating system</li>
<li><a href="Inferno_(operating_system)" title="Inferno (operating system)">Inferno</a>&nbsp;– Distributed operating system</li>
<li><a href="MINIX" class="mw-redirect" title="MINIX">MINIX</a>&nbsp;– Unix-like operating system<span style="display:none" class="category-annotation-with-redirected-description">Pages displaying short descriptions of redirect targets</span></li>
<li><a href="Single_system_image" title="Single system image">Single system image</a>&nbsp;– Cluster dedicated operating system (SSI)</li>
<li><a href="Computer_systems_architecture" class="mw-redirect" title="Computer systems architecture">Computer systems architecture</a>&nbsp;– Set of rules describing computer system<span style="display:none" class="category-annotation-with-redirected-description">Pages displaying short descriptions of redirect targets</span></li>
<li><a href="Multikernel" title="Multikernel">Multikernel</a></li>
<li><a href="Operating_System_Projects" title="Operating System Projects">Operating System Projects</a>&nbsp;– Teaching operating system</li>
<li><a href="Edsger_W._Dijkstra_Prize_in_Distributed_Computing" class="mw-redirect" title="Edsger W. Dijkstra Prize in Distributed Computing">Edsger W. Dijkstra Prize in Distributed Computing</a>&nbsp;– Annual conference on computing<span style="display:none" class="category-annotation-with-redirected-description">Pages displaying short descriptions of redirect targets</span></li>
<li><a href="List_of_distributed_computing_conferences" title="List of distributed computing conferences">List of distributed computing conferences</a></li>
<li><a href="List_of_volunteer_computing_projects" title="List of volunteer computing projects">List of volunteer computing projects</a>&nbsp;– Comprehensive list of volunteer computing projects</li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */


.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}


/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap mw-references-columns"><ol class="references">
<li id="cite_note-Tanenbaum1993-1"><span class="mw-cite-backlink">^ <a href="#cite_ref-Tanenbaum1993_1-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Tanenbaum1993_1-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */


.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}


/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFTanenbaum1993" class="citation journal cs1">Tanenbaum, Andrew S (September 1993). <a rel="nofollow" class="external text" href="https://doi.org/10.1088%2F0967-1846%2F1%2F1%2F001">"Distributed operating systems anno 1992. What have we learned so far?"</a>. <i>Distributed Systems Engineering</i>. <b>1</b> (1): <span class="nowrap">3–</span>10. <a href="Bibcode_(identifier)" class="mw-redirect" title="Bibcode (identifier)">Bibcode</a>:<a rel="nofollow" class="external text" href="https://ui.adsabs.harvard.edu/abs/1993DSE.....1....3T">1993DSE.....1....3T</a>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1088%2F0967-1846%2F1%2F1%2F001">10.1088/0967-1846/1/1/001</a></span>.</cite></span>
</li>
<li id="cite_note-Nutt1992-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-Nutt1992_2-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFNutt1992" class="citation book cs1">Nutt, Gary J. (1992). <span class="id-lock-registration" title="Free registration required"><a rel="nofollow" class="external text" href="https://archive.org/details/centralizeddistr0000nutt"><i>Centralized and Distributed Operating Systems</i></a></span>. Prentice Hall. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-13-122326-4</bdi>.</cite></span>
</li>
<li id="cite_note-Gościński1991-3"><span class="mw-cite-backlink">^ <a href="#cite_ref-Gościński1991_3-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Gościński1991_3-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-Gościński1991_3-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-Gościński1991_3-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-Gościński1991_3-4"><sup><i><b>e</b></i></sup></a> <a href="#cite_ref-Gościński1991_3-5"><sup><i><b>f</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFGościński1991" class="citation book cs1">Gościński, Andrzej (1991). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=ZnYhAQAAIAAJ"><i>Distributed Operating Systems: The Logical Design</i></a>. Addison-Wesley Pub. Co. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-201-41704-3</bdi>.</cite></span>
</li>
<li id="cite_note-Fortier1986-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-Fortier1986_4-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFFortier1986" class="citation book cs1">Fortier, Paul J. (1986). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=F7QmAAAAMAAJ"><i>Design of Distributed Operating Systems: Concepts and Technology</i></a>. Intertext Publications. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>9780070216211</bdi>.</cite></span>
</li>
<li id="cite_note-Hansen2001-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-Hansen2001_5-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFHansen,_Per_Brinch2001" class="citation book cs1">Hansen, Per Brinch, ed. (2001). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=-PDPBvIPYBkC"><i>Classic Operating Systems: From Batch Processing to Distributed Systems</i></a>. Springer. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-387-95113-3</bdi>.</cite></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text">Using LOTOS for specifying the CHORUS distributed operating system kernel Pecheur, C. 1992. Using LOTOS for specifying the CHORUS distributed operating system kernel. Comput. Commun. 15, 2 (Mar. 1992), 93-102.</span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text">COOL: kernel support for object-oriented environments Habert, S. and Mosseri, L. 1990. COOL: kernel support for object-oriented environments. In Proceedings of the European Conference on Object-Oriented Programming on Object-Oriented Programming Systems, Languages, and Applications (Ottawa, Canada). OOPSLA/ECOOP '90. ACM, New York, NY, 269-275.</span>
</li>
<li id="cite_note-Sinha1997-8"><span class="mw-cite-backlink">^ <a href="#cite_ref-Sinha1997_8-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Sinha1997_8-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-Sinha1997_8-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-Sinha1997_8-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-Sinha1997_8-4"><sup><i><b>e</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFSinha1997" class="citation book cs1">Sinha, Pradeep Kumar (1997). <span class="id-lock-registration" title="Free registration required"><a rel="nofollow" class="external text" href="https://archive.org/details/distributedopera0000sinh"><i>Distributed Operating Systems: Concepts and Design</i></a></span>. IEEE Press. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-7803-1119-0</bdi>.</cite></span>
</li>
<li id="cite_note-Chow1997-9"><span class="mw-cite-backlink">^ <a href="#cite_ref-Chow1997_9-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Chow1997_9-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-Chow1997_9-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFChowTheodore_Johnson1997" class="citation book cs1">Chow, Randy; Theodore Johnson (1997). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=J4MZAQAAIAAJ"><i>Distributed Operating Systems and Algorithms</i></a>. Addison Wesley. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-201-49838-7</bdi>.</cite></span>
</li>
<li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text">Surajbali, B., Coulson, G., Greenwood, P., and Grace, P. 2007. Augmenting reflective middleware with an aspect orientation support layer. In Proceedings of the 6th international Workshop on Adaptive and Reflective Middleware: Held At the ACM/IFIP/USENIX international Middleware Conference (Newport Beach, CA, November 26–30, 2007). ARM '07. ACM, New York, NY, 1-6.</span>
</li>
<li id="cite_note-dyseac-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-dyseac_11-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFLeiner1954" class="citation journal cs1">Leiner, Alan L. (April 1954). "System Specifications for the DYSEAC". <i>Journal of the ACM</i>. <b>1</b> (2): <span class="nowrap">57–</span>81. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F320772.320773">10.1145/320772.320773</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&nbsp;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:15381094">15381094</a>.</cite></span>
</li>
<li id="cite_note-lincoln_tx2-12"><span class="mw-cite-backlink">^ <a href="#cite_ref-lincoln_tx2_12-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-lincoln_tx2_12-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFForgie1957" class="citation conference cs1">Forgie, James W. (February 26–28, 1957). <i>The Lincoln TX-2 Input-Output System</i>. Western Joint Computer Conference: Techniques for Reliability. Los Angeles, California: Association for Computing Machinery. pp.&nbsp;<span class="nowrap">156–</span>160. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F1455567.1455594">10.1145/1455567.1455594</a></span>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>9781450378611</bdi>.</cite> <span class="cs1-hidden-error citation-comment"><code class="cs1-code">{{cite conference}}</code>: </span><span class="cs1-hidden-error citation-comment">ISBN / Date incompatibility (help)</span></span>
</li>
<li id="cite_note-intercomm_cells-13"><span class="mw-cite-backlink">^ <a href="#cite_ref-intercomm_cells_13-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-intercomm_cells_13-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFC._Y._Lee1962" class="citation conference cs1">C. Y. Lee (December 4–6, 1962). <i>Intercommunicating cells, basis for a distributed logic computer</i>. Fall Joint Computer Conference. Philadelphia, Pennsylvania: Association for Computing Machinery. pp.&nbsp;<span class="nowrap">130–</span>136. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F1461518.1461531">10.1145/1461518.1461531</a></span>.</cite></span>
</li>
<li id="cite_note-Dreyfus_1958_Gamma60-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-Dreyfus_1958_Gamma60_14-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFDreyfus1958" class="citation cs2 cs1-prop-location-test"><a href="Philippe_Dreyfus" title="Philippe Dreyfus">Dreyfus, Phillippe</a> (1958-05-08) [1958-05-06], written at Los Angeles, <a rel="nofollow" class="external text" href="https://www.computer.org/csdl/proceedings/afips/1958/5052/00/50520130.pdf">"System design of the Gamma 60"</a> <span class="cs1-format">(PDF)</span>, <i>Proceedings of the May 6–8, 1958, <a href="Western_Joint_Computer_Conference" class="mw-redirect" title="Western Joint Computer Conference">Western Joint Computer Conference</a>: Contrasts in Computers</i>, ACM, New York, NY, USA, pp.&nbsp;<span class="nowrap">130–</span>133, IRE-ACM-AIEE '58 (Western), <a rel="nofollow" class="external text" href="https://web.archive.org/web/20170403224547/https://www.computer.org/csdl/proceedings/afips/1958/5052/00/50520130.pdf">archived</a> <span class="cs1-format">(PDF)</span> from the original on 2017-04-03<span class="reference-accessdate">, retrieved <span class="nowrap">2017-04-03</span></span></cite></span>
</li>
<li id="cite_note-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-15">^</a></b></span> <span class="reference-text">Leiner, A. L., Notz, W. A., Smith, J. L., and Weinberger, A. 1958. Organizing a network of computers to meet deadlines. In Papers and Discussions Presented At the December 9–13, 1957, Eastern Joint Computer Conference: Computers with Deadlines To Meet (Washington, D.C., December 09–13, 1957). IRE-ACM-AIEE '57</span>
</li>
<li id="cite_note-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-16">^</a></b></span> <span class="reference-text">Leiner, A. L., Smith, J. L., Notz, W. A., and Weinberger, A. 1958. PILOT, the NBS multicomputer system. In Papers and Discussions Presented At the December 3–5, 1958, Eastern Joint Computer Conference: Modern Computers: Objectives, Designs, Applications (Philadelphia, Pennsylvania, December 03–05, 1958). AIEE-ACM-IRE '58 (Eastern). ACM, New York, NY, 71-75.</span>
</li>
<li id="cite_note-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-17">^</a></b></span> <span class="reference-text">Bauer, W. F. 1958. Computer design from the programmer's viewpoint. In Papers and Discussions Presented At the December 3–5, 1958, Eastern Joint Computer Conference: Modern Computers: Objectives, Designs, Applications (Philadelphia, Pennsylvania, December 03–05, 1958). AIEE-ACM-IRE '58 (Eastern). ACM, New York, NY, 46-51.</span>
</li>
<li id="cite_note-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-18">^</a></b></span> <span class="reference-text">Leiner, A. L., Notz, W. A., Smith, J. L., and Weinberger, A. 1959. PILOT—A New Multiple Computer System. J. ACM 6, 3 (Jul. 1959), 313-335.</span>
</li>
<li id="cite_note-19"><span class="mw-cite-backlink"><b><a href="#cite_ref-19">^</a></b></span> <span class="reference-text">Estrin, G. 1960. <a rel="nofollow" class="external text" href="https://dl.acm.org/doi/abs/10.1145/1460361.1460365">Organization of computer systems: the fixed plus variable structure computer</a>. In Papers Presented At the May 3–5, 1960, Western Joint IRE-AIEE-ACM Computer Conference (San Francisco, California, May 03–05, 1960). IRE-AIEE-ACM '60 (Western). ACM, New York, NY, 33-40.</span>
</li>
<li id="cite_note-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-20">^</a></b></span> <span class="reference-text">Martin H. Weik, "A Third Survey of Domestic Electronic Digital Computing Systems," Ballistic Research Laboratories Report No. 1115, pg. 234-5, Aberdeen Proving Ground, Maryland, March 1961</span>
</li>
<li id="cite_note-21"><span class="mw-cite-backlink"><b><a href="#cite_ref-21">^</a></b></span> <span class="reference-text">Mellor-Crummey, J. M. and Scott, M. L. 1991. <a rel="nofollow" class="external text" href="https://dl.acm.org/doi/abs/10.1145/103727.103729">Algorithms for scalable synchronization on shared-memory multiprocessors</a>. ACM Trans. Comput. Syst. 9, 1 (Feb. 1991), 21-65.</span>
</li>
<li id="cite_note-22"><span class="mw-cite-backlink"><b><a href="#cite_ref-22">^</a></b></span> <span class="reference-text">Baker, M. G., Hartman, J. H., Kupfer, M. D., Shirriff, K. W., and Ousterhout, J. K. 1991. <a rel="nofollow" class="external text" href="http://people.csail.mit.edu/ledlie/resources/papers/1991/baker.ps">Measurements of a distributed file system</a>. In Proceedings of the Thirteenth ACM Symposium on Operating Systems Principles (Pacific Grove, California, United States, October 13–16, 1991). SOSP '91. ACM, New York, NY, 198-212.</span>
</li>
<li id="cite_note-23"><span class="mw-cite-backlink"><b><a href="#cite_ref-23">^</a></b></span> <span class="reference-text">Li, K. and Hudak, P. 1989. Memory coherence in shared virtual memory systems. ACM Trans. Comput. Syst. 7, 4 (Nov. 1989), 321-359.</span>
</li>
<li id="cite_note-24"><span class="mw-cite-backlink"><b><a href="#cite_ref-24">^</a></b></span> <span class="reference-text">Garcia-Molina, H. and Salem, K. 1987. Sagas. In Proceedings of the 1987 ACM SIGMOD international Conference on Management of Data (San Francisco, California, United States, May 27–29, 1987). U. Dayal, Ed. SIGMOD '87. ACM, New York, NY, 249-259.</span>
</li>
<li id="cite_note-25"><span class="mw-cite-backlink"><b><a href="#cite_ref-25">^</a></b></span> <span class="reference-text">Harris, T., Marlow, S., <a href="Simon_Peyton_Jones" title="Simon Peyton Jones">Peyton-Jones, S.</a>, and Herlihy, M. 2005. <a rel="nofollow" class="external text" href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.77.3476&amp;rep=rep1&amp;type=pdf">Composable memory transactions</a>. In Proceedings of the Tenth ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (Chicago, IL, USA, June 15–17, 2005). PPoPP '05. ACM, New York, NY, 48-60.</span>
</li>
<li id="cite_note-26"><span class="mw-cite-backlink"><b><a href="#cite_ref-26">^</a></b></span> <span class="reference-text">Herlihy, M. and Moss, J. E. 1993. <a rel="nofollow" class="external text" href="http://hpl.americas.hp.net/techreports/Compaq-DEC/CRL-92-7.pdf">Transactional memory: architectural support for lock-free data structures</a>. In Proceedings of the 20th Annual international Symposium on Computer Architecture (San Diego, California, United States, May 16–19, 1993). ISCA '93. ACM, New York, NY, 289-300.</span>
</li>
<li id="cite_note-27"><span class="mw-cite-backlink"><b><a href="#cite_ref-27">^</a></b></span> <span class="reference-text">Herlihy, M., Luchangco, V., Moir, M., and Scherer, W. N. 2003. <a rel="nofollow" class="external text" href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.59.8787&amp;rep=rep1&amp;type=pdf">Software transactional memory for dynamic-sized data structures</a>. In Proceedings of the Twenty-Second Annual Symposium on Principles of Distributed Computing (Boston, Massachusetts, July 13–16, 2003). PODC '03. ACM, New York, NY, 92-101.</span>
</li>
<li id="cite_note-28"><span class="mw-cite-backlink"><b><a href="#cite_ref-28">^</a></b></span> <span class="reference-text">Shavit, N. and Touitou, D. 1995. <a rel="nofollow" class="external text" href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.474.5928&amp;rep=rep1&amp;type=pdf">Software transactional memory</a>. In Proceedings of the Fourteenth Annual ACM Symposium on Principles of Distributed Computing (Ottawa, Ontario, Canada, August 20–23, 1995). PODC '95. ACM, New York, NY, 204-213.</span>
</li>
<li id="cite_note-29"><span class="mw-cite-backlink"><b><a href="#cite_ref-29">^</a></b></span> <span class="reference-text">Kubiatowicz, J., Bindel, D., Chen, Y., Czerwinski, S., Eaton, P., Geels, D., Gummadi, R., Rhea, S., Weatherspoon, H., Wells, C., and Zhao, B. 2000. <a rel="nofollow" class="external text" href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.439.4822&amp;rep=rep1&amp;type=pdf">OceanStore: an architecture for global-scale persistent storage</a>. In Proceedings of the Ninth international Conference on Architectural Support For Programming Languages and Operating Systems (Cambridge, Massachusetts, United States). ASPLOS-IX. ACM, New York, NY, 190-201.</span>
</li>
<li id="cite_note-30"><span class="mw-cite-backlink"><b><a href="#cite_ref-30">^</a></b></span> <span class="reference-text">Gifford, D. K. 1979. <a rel="nofollow" class="external text" href="http://pages.cs.wisc.edu/~remzi/Classes/739/Spring2004/Papers/p150-gifford.pdf">Weighted voting for replicated data</a>. In Proceedings of the Seventh ACM Symposium on Operating Systems Principles (Pacific Grove, California, United States, December 10–12, 1979). SOSP '79. ACM, New York, NY, 150-162</span>
</li>
<li id="cite_note-31"><span class="mw-cite-backlink"><b><a href="#cite_ref-31">^</a></b></span> <span class="reference-text">Dwork, C., Lynch, N., and Stockmeyer, L. 1988. <a rel="nofollow" class="external text" href="https://groups.csail.mit.edu/tds/papers/Lynch/MIT-LCS-TM-270.pdf">Consensus in the presence of partial synchrony</a>. J. ACM 35, 2 (Apr. 1988), 288-323.</span>
</li>
<li id="cite_note-32"><span class="mw-cite-backlink"><b><a href="#cite_ref-32">^</a></b></span> <span class="reference-text">Lamport, L., Shostak, R., and Pease, M. 1982. <a rel="nofollow" class="external text" href="http://people.cs.uchicago.edu/~shanlu/teaching/33100_wi15/papers/byz.pdf">The Byzantine Generals Problem</a>. ACM Trans. Program. Lang. Syst. 4, 3 (Jul. 1982), 382-401.</span>
</li>
<li id="cite_note-33"><span class="mw-cite-backlink"><b><a href="#cite_ref-33">^</a></b></span> <span class="reference-text">Schlichting, R. D. and Schneider, F. B. 1983. Fail-stop processors: an approach to designing fault-tolerant computing systems. ACM Trans. Comput. Syst. 1, 3 (Aug. 1983), 222-238.</span>
</li>
<li id="cite_note-34"><span class="mw-cite-backlink"><b><a href="#cite_ref-34">^</a></b></span> <span class="reference-text">Chandy, K. M. and Lamport, L. 1985. Distributed snapshots: determining global states of distributed systems. ACM Trans. Comput. Syst. 3, 1 (Feb. 1985), 63-75.</span>
</li>
<li id="cite_note-35"><span class="mw-cite-backlink"><b><a href="#cite_ref-35">^</a></b></span> <span class="reference-text">Strom, R. and Yemini, S. 1985. Optimistic recovery in distributed systems. ACM Trans. Comput. Syst. 3, 3</span>
</li>
<li id="cite_note-Galli2000-36"><span class="mw-cite-backlink">^ <a href="#cite_ref-Galli2000_36-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Galli2000_36-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-Galli2000_36-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFGalli2000" class="citation book cs1">Galli, Doreen L. (2000). <span class="id-lock-registration" title="Free registration required"><a rel="nofollow" class="external text" href="https://archive.org/details/distributedopera00gall"><i>Distributed Operating Systems: Concepts and Practice</i></a></span>. Prentice Hall. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-13-079843-5</bdi>.</cite></span>
</li>
<li id="cite_note-Tanenbaum1995-37"><span class="mw-cite-backlink"><b><a href="#cite_ref-Tanenbaum1995_37-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFTanenbaum1995" class="citation book cs1">Tanenbaum, Andrew S. (1995). <span class="id-lock-registration" title="Free registration required"><a rel="nofollow" class="external text" href="https://archive.org/details/unset0000unse_h1q3"><i>Distributed Operating Systems</i></a></span>. Prentice Hall. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-13-219908-7</bdi>.</cite></span>
</li>
<li id="cite_note-38"><span class="mw-cite-backlink"><b><a href="#cite_ref-38">^</a></b></span> <span class="reference-text">L.B. Ryzhyk, A.Y. Burtsev. Architectural design of dE1 distributed operating system. System Research and Information Technologies international scientific and technical journal, October 2004, Kiev, Ukraine.</span>
</li>
<li id="cite_note-39"><span class="mw-cite-backlink"><b><a href="#cite_ref-39">^</a></b></span> <span class="reference-text">Vinter, S. T. and Schantz, R. E. 1986. The Cronus distributed operating system. In Proceedings of the 2nd Workshop on Making Distributed Systems Work (Amsterdam, Netherlands, September 08–10, 1986). EW 2. ACM, New York, NY, 1-3.</span>
</li>
<li id="cite_note-40"><span class="mw-cite-backlink"><b><a href="#cite_ref-40">^</a></b></span> <span class="reference-text">Ramesh, K. S. 1988. Design and development of MINIX distributed operating system. In Proceedings of the 1988 ACM Sixteenth Annual Conference on Computer Science (Atlanta, Georgia, United States). CSC '88. ACM, New York, NY, 685.</span>
</li>
<li id="cite_note-41"><span class="mw-cite-backlink"><b><a href="#cite_ref-41">^</a></b></span> <span class="reference-text">Whitaker, A., Shaw, M., and Gribble, S. D. 2002. In Proceedings of the 5th Symposium on Operating Systems Design and Implementation</span>
</li>
<li id="cite_note-42"><span class="mw-cite-backlink"><b><a href="#cite_ref-42">^</a></b></span> <span class="reference-text">Baumann, A., Barham, P., Dagand, P., Harris, T., Isaacs, R., Peter, S., Roscoe, T., Schüpbach, A., and Singhania, A. 2009. In Proceedings of the ACM SIGOPS 22nd Symposium on Operating Systems Principles (Big Sky, Montana, USA, October 11–14, 2009). SOSP '09.</span>
</li>
<li id="cite_note-43"><span class="mw-cite-backlink"><b><a href="#cite_ref-43">^</a></b></span> <span class="reference-text">S. Boyd-Wickizer, H. Chen, R. Chen, Y. Mao, F. Kashoek, R. Morris, A. Pesterev, L. Stein, M. Wu, Y. Dai, Y. Zhang, and Z. Zhang. Proceedings of the 2008 Symposium on Operating Systems Design and Implementation (OSDI), December 2008.</span>
</li>
<li id="cite_note-44"><span class="mw-cite-backlink"><b><a href="#cite_ref-44">^</a></b></span> <span class="reference-text">Almaless, G. and Wajsbürt, F. 2011. In Proceedings of the 5th national seminar of GDR SoC-SIP, Lyon, France, 2011.</span>
</li>
<li id="cite_note-45"><span class="mw-cite-backlink"><b><a href="#cite_ref-45">^</a></b></span> <span class="reference-text">Nightingale, E. B., Hodson, O., McIlroy, R., Hawblitzel, C., and Hunt, G. 2009. In Proceedings of the ACM SIGOPS 22nd Symposium on Operating Systems Principles (Big Sky, Montana, USA, October 11–14, 2009). SOSP '09.</span>
</li>
<li id="cite_note-46"><span class="mw-cite-backlink"><b><a href="#cite_ref-46">^</a></b></span> <span class="reference-text">Rose Liu, Kevin Klues, and Sarah Bird, University of California at Berkeley; Steven Hofmeyr, Lawrence Berkeley National Laboratory; <a href="Krste_Asanovi%C4%87" title="Krste Asanović">Krste Asanović</a> and John Kubiatowicz, University of California at Berkeley. HotPar09.</span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="Further_reading">Further reading</h2></div>
<ul><li><cite id="CITEREFChowTheodore_Johnson1997" class="citation book cs1">Chow, Randy; Theodore Johnson (1997). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=J4MZAQAAIAAJ"><i>Distributed Operating Systems and Algorithms</i></a>. Addison Wesley. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-201-49838-7</bdi>.</cite></li>
<li><cite id="CITEREFSinha1997" class="citation book cs1">Sinha, Pradeep Kumar (1997). <span class="id-lock-registration" title="Free registration required"><a rel="nofollow" class="external text" href="https://archive.org/details/distributedopera0000sinh"><i>Distributed Operating Systems: Concepts and Design</i></a></span>. IEEE Press. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-7803-1119-0</bdi>.</cite></li>
<li><cite id="CITEREFGalli2000" class="citation book cs1">Galli, Doreen L. (2000). <span class="id-lock-registration" title="Free registration required"><a rel="nofollow" class="external text" href="https://archive.org/details/distributedopera00gall"><i>Distributed Operating Systems: Concepts and Practice</i></a></span>. Prentice Hall. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-13-079843-5</bdi>.</cite></li></ul>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */


.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}


/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="Distributed_operating_systems192" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><div id="Distributed_operating_systems192" style="font-size:114%;margin:0 4em"></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Current</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Barrelfish_(operating_system)" title="Barrelfish (operating system)">Barrelfish</a></li>
<li><a href="HarmonyOS" title="HarmonyOS">HarmonyOS</a></li>
<li><a href="OpenHarmony" title="OpenHarmony">OpenHarmony</a></li>
<li><a href="HarmonyOS_NEXT" title="HarmonyOS NEXT">HarmonyOS NEXT</a></li>
<li><a href="Inferno_(operating_system)" title="Inferno (operating system)">Inferno</a></li>
<li><a href="Plan_9_from_Bell_Labs" title="Plan 9 from Bell Labs">Plan 9 from Bell Labs</a></li>
<li><a href="QNX" title="QNX">QNX</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Historic</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Amoeba_(operating_system)" title="Amoeba (operating system)">Amoeba</a></li>
<li><a href="Cambridge_Distributed_Computing_System" title="Cambridge Distributed Computing System">Cambridge Distributed Computing System</a></li>
<li><a href="ChorusOS" title="ChorusOS">ChorusOS</a></li>
<li><a href="Domain/OS" title="Domain/OS">Domain/OS</a></li>
<li><a href="HeliOS" class="mw-redirect" title="HeliOS">HeliOS</a></li>
<li><a href="LOCUS_(operating_system)" class="mw-redirect" title="LOCUS (operating system)">LOCUS</a></li>
<li><a href="MOSIX" title="MOSIX">MOSIX</a></li>
<li><a href="Sprite_(operating_system)" title="Sprite (operating system)">Sprite</a></li>
<li><a href="V_(operating_system)" title="V (operating system)">V</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Projects</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Cairo_(operating_system)" title="Cairo (operating system)">Cairo</a></li></ul>
</div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div>
<ul><li><span class="noviewer" typeof="mw:File"><span title="Category"></span></span>&nbsp;Category</li></ul>
</div></td></tr></tbody></table></div>
<div class="navbox-styles"></div><div role="navigation" class="navbox" aria-labelledby="Operating_systems310" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Operating_systems310" style="font-size:114%;margin:0 4em"><a href="Operating_system" title="Operating system">Operating systems</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">General</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Comparison_of_operating_systems" title="Comparison of operating systems">Comparison</a></li>
<li><a href="Forensic_software_engineering" title="Forensic software engineering">Forensic engineering</a></li>
<li><a href="History_of_operating_systems" title="History of operating systems">History</a></li>
<li><a href="List_of_operating_systems" title="List of operating systems">List</a></li>
<li><a href="Timeline_of_operating_systems" title="Timeline of operating systems">Timeline</a></li>
<li><a href="Usage_share_of_operating_systems" title="Usage share of operating systems">Usage share</a></li>
<li><a href="Comparison_of_user_features_of_operating_systems" title="Comparison of user features of operating systems">User features comparison</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Variants</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Disk_operating_system" title="Disk operating system">Disk operating system</a></li>

<li><a href="Embedded_operating_system" title="Embedded operating system">Embedded operating system</a></li>
<li><a href="Hobbyist_operating_system" title="Hobbyist operating system">Hobbyist operating system</a></li>
<li><a href="Just_enough_operating_system" title="Just enough operating system">Just enough operating system</a></li>
<li><a href="Mobile_operating_system" title="Mobile operating system">Mobile operating system</a></li>
<li><a href="Network_operating_system" title="Network operating system">Network operating system</a></li>
<li><a href="Object-oriented_operating_system" title="Object-oriented operating system">Object-oriented operating system</a></li>
<li><a href="Real-time_operating_system" title="Real-time operating system">Real-time operating system</a></li>
<li><a href="Supercomputer_operating_system" title="Supercomputer operating system">Supercomputer operating system</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Kernel_(operating_system)" title="Kernel (operating system)">Kernel</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:6em"><a href="Computer_architecture" title="Computer architecture">Architectures</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Exokernel" title="Exokernel">Exokernel</a></li>
<li><a href="Hybrid_kernel" title="Hybrid kernel">Hybrid</a></li>
<li><a href="Microkernel" title="Microkernel">Microkernel</a></li>
<li><a href="Monolithic_kernel" title="Monolithic kernel">Monolithic</a></li>
<li><a href="Multikernel" title="Multikernel">Multikernel</a></li>
<li><a href="Vkernel" title="Vkernel">vkernel</a></li>
<li><a href="Rump_kernel" title="Rump kernel">Rump kernel</a></li>
<li><a href="Unikernel" title="Unikernel">Unikernel</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:6em">Components</th><td class="navbox-list-with-group navbox-list navbox-even" style="padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Device_driver" title="Device driver">Device driver</a></li>
<li><a href="Loadable_kernel_module" title="Loadable kernel module">Loadable kernel module</a></li>
<li><a href="User_space_and_kernel_space" title="User space and kernel space">User space and kernel space</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Process_management_(computing)" title="Process management (computing)">Process management</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:6em">Concepts</th><td class="navbox-list-with-group navbox-list navbox-odd" style="padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Computer_multitasking" title="Computer multitasking">Computer multitasking</a> (<a href="Cooperative_multitasking" title="Cooperative multitasking">Cooperative</a>, <a href="Preemption_(computing)" title="Preemption (computing)">Preemptive</a>)</li>
<li><a href="Context_switch" title="Context switch">Context switch</a></li>
<li><a href="Interrupt" title="Interrupt">Interrupt</a></li>
<li><a href="Inter-process_communication" title="Inter-process communication">IPC</a></li>
<li><a href="Process_(computing)" title="Process (computing)">Process</a></li>
<li><a href="Process_control_block" title="Process control block">Process control block</a></li>
<li><a href="Real-time_operating_system" title="Real-time operating system">Real-time</a></li>
<li><a href="Thread_(computing)" title="Thread (computing)">Thread</a></li>
<li><a href="Time-sharing" title="Time-sharing">Time-sharing</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:6em"><a href="Scheduling_(computing)" title="Scheduling (computing)">Scheduling<br>algorithms</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Fixed-priority_pre-emptive_scheduling" title="Fixed-priority pre-emptive scheduling">Fixed-priority preemptive</a></li>
<li><a href="Multilevel_feedback_queue" title="Multilevel feedback queue">Multilevel feedback queue</a></li>
<li><a href="Round-robin_scheduling" title="Round-robin scheduling">Round-robin</a></li>
<li><a href="Shortest_job_next" title="Shortest job next">Shortest job next</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Memory_management_(operating_systems)" title="Memory management (operating systems)">Memory management</a>,<br><a href="System_resource" title="System resource">resource</a> protection</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Bus_error" title="Bus error">Bus error</a></li>
<li><a href="General_protection_fault" title="General protection fault">General protection fault</a></li>
<li><a href="Memory_paging" title="Memory paging">Memory paging</a></li>
<li><a href="Memory_protection" title="Memory protection">Memory protection</a></li>
<li><a href="Protection_ring" title="Protection ring">Protection ring</a></li>
<li><a href="Segmentation_fault" title="Segmentation fault">Segmentation fault</a></li>
<li><a href="Virtual_memory" title="Virtual memory">Virtual memory</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Non-volatile_memory" title="Non-volatile memory">Storage</a> access,<br><a href="File_system" title="File system">file systems</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Booting#BOOT-LOADER" title="Booting">Boot loader</a></li>
<li><a href="Defragmentation" title="Defragmentation">Defragmentation</a></li>
<li><a href="Device_file" title="Device file">Device file</a></li>
<li><a href="File_attribute" title="File attribute">File attribute</a></li>
<li><a href="Inode" title="Inode">Inode</a></li>
<li><a href="Journaling_file_system" title="Journaling file system">Journal</a></li>
<li><a href="Disk_partitioning" title="Disk partitioning">Partition</a></li>
<li><a href="Virtual_file_system" title="Virtual file system">Virtual file system</a></li>
<li><a href="Virtual_tape_library" title="Virtual tape library">Virtual tape library</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Supporting concepts</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="API" title="API">API</a></li>
<li><a href="Computer_network" title="Computer network">Computer network</a></li>
<li><a href="Hardware_abstraction" title="Hardware abstraction">HAL</a></li>
<li><a href="Live_CD" title="Live CD">Live CD</a></li>
<li><a href="Live_USB" title="Live USB">Live USB</a></li>
<li><a href="Shell_(computing)" title="Shell (computing)">Shell</a>
<ul><li><a href="Command-line_interface" title="Command-line interface">CLI</a></li>
<li><a href="User_interface" title="User interface">User interface</a></li></ul></li>
<li><a href="Preboot_Execution_Environment" title="Preboot Execution Environment">PXE</a></li></ul>
</div></td></tr></tbody></table></div>
<div class="navbox-styles"></div><div role="navigation" class="navbox authority-control" aria-labelledby="Authority_control_databases_frameless&amp;#124;text-top&amp;#124;10px&amp;#124;alt=Edit_this_at_Wikidata&amp;#124;link=https&amp;#58;//www.wikidata.org/wiki/Q588145#identifiers&amp;#124;class=noprint&amp;#124;Edit_this_at_Wikidata902" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Authority_control_databases_frameless&amp;#124;text-top&amp;#124;10px&amp;#124;alt=Edit_this_at_Wikidata&amp;#124;link=https&amp;#58;//www.wikidata.org/wiki/Q588145#identifiers&amp;#124;class=noprint&amp;#124;Edit_this_at_Wikidata902" style="font-size:114%;margin:0 4em">Authority control databases </div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">National</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://id.loc.gov/authorities/sh90004436">United States</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://catalogue.bnf.fr/ark:/12148/cb12506361s">France</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://data.bnf.fr/ark:/12148/cb12506361s">BnF data</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://datos.bne.es/resource/XX4433491">Spain</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://www.nli.org.il/en/authorities/987007534684205171">Israel</a></span></li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Other</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://lux.collections.yale.edu/view/concept/1abc66f6-2106-40e4-92fe-eb4fa9f23bb5">Yale LUX</a></span></li></ul></div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-04-27" href="https://en.wikipedia.org/wiki/?title=Distributed_operating_system&amp;oldid=1287647218">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>

</body></html>